Orthopedic treatment device co-display systems and methods

ABSTRACT

In some embodiments, a synthetic (virtual) orthopedic treatment device (e.g. a virtual external fixator representing a physical fixator attachable to a patient&#39;s anatomic structure) is displayed concurrently in two views (e.g. anterior-posterior and lateral) along corresponding digital medical images (e.g. X-rays), and rotation/translation user input received along one of the images is used to concurrently control both displays of the orthopedic treatment device to reflect the rotation/translation user input.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/165,420, filed Jan. 27, 2014, scheduled to issue on Feb. 10, 2015 asU.S. Pat. No. 8,952,986, which is a continuation of U.S. patentapplication Ser. No. 13/758,814, filed Feb. 4, 2013, issued on Feb. 18,2014 as U.S. Pat. No. 8,654,150, which claims the benefit of the filingdate of U.S. Provisional Application No. 61/594,519, filed Feb. 3, 2012,all of which are incorporated herein by reference in their entireties.

BACKGROUND

The invention relates to systems and methods for correcting bonedeformities using external fixators, and in particular to using systemsto plan and optimize bone deformity correction treatment with externalfixators.

Patients with bone deformities suffer from a reduced quality of life:they may suffer from difficulties in standing, walking, or using limbs.Bone deformities can be congenital, or the result of a fracture that didnot heal properly. These deformities can include axial, sagittal, orcoronal plane deformities, translational or rotational deformities andmal-union or non-union deformities, or, in complex cases, more than onetype of deformity.

The bone deformities are often treated with surgery. For example,surgeons may use metal implants to improve the geometry of a deformedbone; however, inert metal implants are not as flexible in their abilityto reform natural bone in something close to normal anatomical geometry.As an alternative, surgeons may perform an osteotomy—a cut in thebone—and then attach an external fixator to support the growing bonewhile the bone deformity is corrected. The Taylor Spatial Frame (TSF) isa commonly-used external fixator comprising rings interconnected bystruts. After the osteotomy, the surgeon may insert pins through thesuperior and inferior sections of the bone. These pins are attached toexternal rings so that one ring is roughly perpendicular to the superiorsection of the bone, and the other ring is roughly perpendicular to theinferior section of the bone. The surgeon may attach adjustable strutsto these rings so that the rings are held together by the struts. Eachstrut has a predetermined attachment point to each ring. Because therings are each fixed to a section of bone, and because the rings are nowjoined by flexible struts, the bones can be moved with six degrees offreedom relative to each other.

After the surgery to attach these rings and struts, a surgeon may takeorthogonal x-rays of the apparatus on the patient's leg. The surgeon maymake a number of measurements from the x-ray images, including distancesand angles of both the tibia and the rings and struts. The surgeon maythen use the numerical measurements to calculate the bone correctionneeded and prescribe for the patient the length of each strut to beadjusted each day. Typically, daily adjustments will be made, realigningthe sections of the bone at a rate that allows new bone to formultimately yielding natural bone in a geometry that comes close tonormal anatomy and function.

Such calculations are usually time-consuming and usually rely on theassumptions that each ring is perfectly perpendicular to the bonesegment to which it is attached. This may require a surgeon to spendextra time in the operating room to assure that each ring isperpendicular to each corresponding bone segment. If a ring is notperpendicular to its corresponding bone segment, error will be enteredand the resulting prescription for strut adjustments will not beaccurate.

This system of two rings and six struts may be chosen for severalreasons. First, the system allows a surgeon to move the two bonesegments with six degrees of freedom relative to each other, therebygiving the surgeon the freedom to treat many types of deformities. Thesystem may be strong enough to support body weight so that a patient canbe ambulatory while healing occurs.

The shortcomings of the procedure include the difficulty and lack ofaccuracy in using a ruler and protractor on an x-ray print-out, ordigital system not related to the prescription calculation program, tomeasure distances and angles, the amount of time involved in performingall the calculations needed to generate the patient prescription, andthe surgical difficulty in positioning the external fixator exactly withrespect to the patient's bone.

It would thus be desirable to develop a system that would allow easy andaccurate measurements of bones and bone deformities, and easily generateaccurate prescriptions for strut lengths for the bone correctiontreatment.

SUMMARY

According to one aspect, a computer system comprises a microprocessorconfigured to execute instructions to: generate a first display of anorthopedic treatment device superimposed on a display of a first digitalmedical image, the display of the first digital medical image displayinga first view of a patient's anatomical structure, the first display ofthe orthopedic treatment device being a first graphical representationof a synthetic orthopedic treatment device representing a physicalorthopedic treatment device; substantially concurrently with generatingthe first display of the orthopedic treatment device superimposed on thedisplay of the first digital medical image, generate a second display ofthe orthopedic treatment device superimposed on a display of a seconddigital image, the display of the second digital medical imagedisplaying a second view of the patient's anatomical structure from adifferent angle than the first view, the second display of theorthopedic treatment device being a second graphical representation ofthe synthetic orthopedic treatment device; receive user input enteredgraphically on the first display of the orthopedic treatment devicesuperimposed on the display of the first digital medical image, the userinput controlling a motion of the synthetic orthopedic treatment device;and in response to receiving the user input, update the first display ofthe orthopedic treatment device superimposed on the display of a firstdigital medical image and the second display of the orthopedic treatmentdevice superimposed on the display of a second digital image to reflectthe motion of the synthetic orthopedic treatment device.

According to another aspect, a non-transitory computer-readable mediumencodes instructions which, when executed by a microprocessor of acomputer system, cause the computer system to: generate a first displayof an orthopedic treatment device superimposed on a display of a firstdigital medical image, the display of the first digital medical imagedisplaying a first view of a patient's anatomical structure, the firstdisplay of the orthopedic treatment device being a first graphicalrepresentation of a synthetic orthopedic treatment device representing aphysical orthopedic treatment device; substantially concurrently withgenerating the first display of the orthopedic treatment devicesuperimposed on the display of the first digital medical image, generatea second display of the orthopedic treatment device superimposed on adisplay of a second digital image, the display of the second digitalmedical image displaying a second view of the patient's anatomicalstructure from a different angle than the first view, the second displayof the orthopedic treatment device being a second graphicalrepresentation of the synthetic orthopedic treatment device; receiveuser input entered graphically on the first display of the orthopedictreatment device superimposed on the display of the first digitalmedical image, the user input controlling a motion of the syntheticorthopedic treatment device; and in response to receiving the userinput, update the first display of the orthopedic treatment devicesuperimposed on the display of a first digital medical image and thesecond display of the orthopedic treatment device superimposed on thedisplay of a second digital image to reflect the motion of the syntheticorthopedic treatment device.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing aspects and advantages of the present invention willbecome better understood upon reading the following detailed descriptionand upon reference to the drawings where:

FIG. 1 shows a hardware configuration of an exemplary computer system,which may be used to implement at least part of the embodiments of thepresent invention.

FIG. 2 shows multiple computer systems may be interconnected through awide-area network such as the Internet, suitable for implementing someembodiments of the present invention.

FIG. 3 shows screen shot of the “ID, SESSIONS, & IMPORT IMAGES” box,according to some embodiments of the present invention.

FIG. 4 shows a screen shot of the graphical user interface of the imagedrag and drop function of the “ID, SESSIONS, & IMPORT IMAGES” tab,according to some embodiments of the present invention.

FIG. 5 shows a screen shot after a first digital medical image has beendropped, according to some embodiments of the present invention.

FIG. 6 shows a screen shot of the graphical user interface for definingbone segments using the “PLACE SEGMENTS” tab that defines the number andposition of bone segments, according to some embodiments of the presentinvention.

FIG. 7 shows a screen shot where multiple segments have been placed on adigital medical image, according to some embodiments of the presentinvention.

FIG. 8 shows a screen shot where joint lines and bisectors have been setfor each segment, according to some embodiments of the presentinvention.

FIG. 9 shows a screen shot where multiple joint lines can be defined foreach segment, according to some embodiments of the present invention.

FIG. 10 shows a screen shot where segments are on different sides of ajoint, according to some embodiments of the present invention.

FIGS. 11A-B show screen shots that illustrating the concept of rotatingfor reference, according to some embodiments of the present invention.

FIG. 12 shows a screen shot of the “DEFINE RINGS” tab, according to someembodiments of the present invention.

FIG. 13 shows a screen shot of the DEFINE RINGS tab where multiplering-pairs have been defined, according to some embodiments of thepresent invention.

FIGS. 14A-14B show screen shots of the DEFINE RINGS tab where the userhas defined the ring geometry for the top and bottom ring of a ring pairby selecting the type and size of rings being used, according to someembodiments of the present invention.

FIG. 15 shows a screen shot of the DEFINE RINGS tab where the user isselecting the attachment point for each strut, according to someembodiments of the present invention.

FIG. 16 shows a screen shot of the DEFINE RINGS tab in which the userhas chosen to attach the strut to the ring by way of an intermediarypiece of hardware, in this case, a ring drop, according to someembodiments of the present invention.

FIG. 17 is a schematic drawing showing a top, perspective, front andside views of a ring drop used to attach a strut to the ring, accordingto some embodiments of the present invention.

FIG. 18 shows a screen shot of the “PLACE RINGS” tab, according to someembodiments of the present invention.

FIG. 19 shows a screen shot of the PLACE RINGS tab where a ring bisectoris drawn on the AP view of the digital medical image, according to someembodiments of the present invention.

FIG. 20 shows a screen shot of the PLACE RINGS tab where, after placingfour ring bisector axes (AP & lateral, top & bottom), the program placesan initial set of rings, according to some embodiments of the presentinvention.

FIG. 21 shows a screen shot of the PLACE RINGS tab of a display of thering as a single ellipse, according to some embodiments of the presentinvention.

FIG. 22 shows a screen shot of the PLACE RINGS tab where the width andposition of the rings are adjusted by manipulating ring axes, accordingto some embodiments of the present invention.

FIG. 23 is a screen shot of the PLACE RINGS tab showing adjustment ofthe ring “b” or short axis to match the ring position on screen,according to some embodiments of the present invention.

FIG. 24 shows a screen shot of the PLACE RINGS tab of a user adjustingthe ring rotation, according to some embodiments of the presentinvention.

FIG. 25 is a screen shot of the PLACE RINGS tab of a user adjusting thering rotation of the lateral view relative to the AP view, according tosome embodiments of the present invention.

FIG. 26 is a screen shot of the PLACE RINGS tab showing rotationsinvolving multiple ring pairs, according to some embodiments of thepresent invention.

FIGS. 27A-27F show screen shots of a user highlighting each strut bynumber to assist with ring identification, according to some embodimentsof the present invention.

FIG. 28 is a screen shot of the PLACE RINGS tab showing a user enteringtrue strut lengths taken from the actual struts, according to someembodiments of the present invention.

FIG. 29 shows a screen shot of the PLACE RINGS tab where user can chooseto view the images with or without rotation for reference and/orscaling, according to some embodiments of the present invention.

FIG. 30 shows a schematic drawing of various views of a model of a ringmarker, according to some embodiments of the present invention.

FIG. 31 shows a screen shot of the “TRANSLATE SEGMENTS” tab, accordingto some embodiments of the present invention.

FIG. 32 shows a screen shot of the TRANSLATE SEGMENTS tab where the APsegment is being translated medially, according to some embodiments ofthe present invention.

FIG. 33 is a screen shot of the TRANSLATE SEGMENTS tab showing a usermoving the CORAs, according to some embodiments of the presentinvention.

FIG. 34 shows a screen shot of the TRANSLATE SEGMENTS tab where thevertical positions of the CORAs are matched, according to someembodiments of the present invention.

FIGS. 35A-35B show screen shots of multiple segments being translated,according to some embodiments of the present invention.

FIG. 36 is a screen shot of the TRANSLATE SEGMENTS tab showing howimages may be viewed with or without rotation for reference and/orscaling, according to some embodiments of the present invention.

FIGS. 37A-37B show screen shots of the “SET CORRECTION” tab, accordingto some embodiments of the present invention.

FIG. 38 shows a screen shot of the SET CORRECTION tab where a rate pointhas been added and can be moved by the user, according to someembodiments of the present invention.

FIGS. 39A-39E show screen shots of the SET CORRECTION tab of correctionsshown on day 0, 2, 4, 6, and 8 respectively, according to someembodiments of the present invention.

FIG. 40 shows a screen shot of the SET CORRECTION tab where a user isadjusting components of the correction individually, according to someembodiments of the present invention.

FIGS. 41A-41C show screen shots of a two-step correction on days 0, 8,and 28, respectively, according to some embodiments of the presentinvention.

FIGS. 42A-42B show screen shots of the SET CORRECTION tab wherecorrections applied to multiple deformity pairs, according to someembodiments of the present invention.

FIG. 43 is a screen shot showing a user's ability to view images with orwithout rotation for reference and/or scaling, according to someembodiments of the present invention.

FIG. 44 shows a screen shot of the “CORRECTION PRESCRIPTION” tab,according to some embodiments of the present invention.

FIGS. 45A-J illustrate a computer-implemented method, along with itsalternative embodiments, to generate a graphical display of a ringsuperimposed on a digital medical image, according to some embodimentsof the present invention.

FIGS. 46A-F illustrate the method of FIG. 45J, further including variousaspects involved in bone deformity treatment, according to someembodiments of the present invention.

FIGS. 47A-B illustrate a tilted ellipse in a 2D (X, Y) plane, accordingto some embodiments of the present invention.

FIG. 47C illustrates an example of a ring's azimuthal rotation, where afixed point on the ring is defined as an azimuthal rotational referencepoint, according to some embodiments of the present invention.

FIGS. 47D-E illustrate two orthogonal planes, XY and ZY, according tosome embodiments of the present invention.

FIGS. 47F-G illustrate the rotation of a segment, to bring it parallelto the Y-axis, according to some embodiments of the present invention.

FIGS. 48A-B show an exemplary embodiment of an ellipse, with an “a”axis, and an adjustment handle, where the ellipse may be dragged by its“a” axis endpoints, according to some embodiments of the presentinvention.

FIGS. 49A-B, show one type “axial rotation”, for example a rotation ofthe display of the ring around the “a” axis is accomplished by changingthe length of the “b” axis, according to some embodiments of the presentinvention.

FIGS. 50A-B show that changing φ need not change the appearance of aring without azimuthal features (i.e. a plain ring), according to someembodiments of the present invention.

FIGS. 51A-B show screenshots of a rotation of the top ring around the“a” axis, accomplished by changing the length of the “b” axis, accordingto some embodiments of the present invention.

FIG. 52 illustrates an image rotated for reference, according to someembodiments of the present invention.

FIG. 53 shows a screen shot where the Y-axis values of the two centerpoints are equal according to some embodiments of the present invention.

FIGS. 54A-B illustrate a correction of the parallax effect in thelateral view of an ellipse, according to some embodiments of the presentinvention.

FIGS. 55-56 show screen shots illustrating an exaggerated rotation ofthe top ring, according to some embodiments of the present invention.

FIG. 57 shows a screen shot illustrating an example of a rotation ofboth rings on the lateral image, according to some embodiments of thepresent invention.

FIGS. 58A-B show screenshots of the SET CORRECTION tab on days 0 and 1of a correction, according to some embodiments of the present invention.

FIGS. 59A-F show screen shots of a manipulation with a rate point ondays 0, 2, 4, 6, and 8 of 8, according to some embodiments of thepresent invention.

FIG. 60 shows an exemplary screenshot for high tibial osteotomycorrection, according to some embodiments of the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

In the following description, it is understood that all recitedconnections between structures can be direct operative connections orindirect operative connections through intermediary structures. A set ofelements includes one or more elements. Any recitation of an element isunderstood to refer to at least one element. A plurality of elementsincludes at least two elements. Unless otherwise required, any describedmethod steps need not be necessarily performed in a particularillustrated order. A first element (e.g. data) derived from a secondelement encompasses a first element equal to the second element, as wellas a first element generated by processing the second element andoptionally other data. Azimuthal rotation of a ring refers to rotationof the ring about an axis passing through a center of the ring andnormal to a major plane of the ring. Axial rotation of a ring refers toa non-azimuthal rotation of the ring, i.e. to a rotation about an axisdifferent from the axis passing through the center of the ring andnormal to the major plane of the ring; an axial rotation may beperformed about an axis lying in the major plane of the ring, about apoint along the ring or tangent to the ring, or about another axis.Making a determination or decision according to a parameter encompassesmaking the determination or decision according to the parameter andoptionally according to other data. Unless otherwise specified, anindicator of some quantity/data may be the quantity/data itself, or anindicator different from the quantity/data itself. Computer programsdescribed in some embodiments of the present invention may bestand-alone software entities or sub-entities (e.g., subroutines, codeobjects) of other computer programs. Computer readable media encompassnon-transitory media such as magnetic, optic, and semiconductor storagemedia (e.g. hard drives, optical disks, flash memory, DRAM), as well ascommunications links such as conductive cables and fiber optic links.According to some embodiments, the present invention provides, interalia, computer systems comprising hardware (e.g. one or more processorsand associated memory) programmed to perform the methods describedherein, as well as computer-readable media encoding instructions toperform the methods described herein.

The following description illustrates embodiments of the invention byway of example and not necessarily by way of limitation.

Hardware Environment

FIG. 1 shows a hardware configuration of an exemplary computer system100 which may be used to implement at least part of the embodiments ofthe present invention. As shown in FIG. 1, one or more buses 110 connecta processor (CPU) 120, memory 130, input (e.g. mouse, keyboard) andoutput devices (e.g. display, speakers, haptic/vibration generator) 140,and storage devices (e.g. hard drive) 150. Software as described belowmay run on one or more computer systems such as the one shown in FIG. 1.

As shown in FIG. 2, multiple computer systems 100 may be interconnectedthrough a wide-area network 160 such as the Internet in some embodimentsof the present invention. Bone deformity correction software running onone system 100 may be accessible through an interface (e.g. webinterface, or application software interface) running on a differentsystem 100. In some embodiments, some of the steps described below (e.g.diagnostic/X-ray image generation and storage, fixator modelcomputations and storage) may be performed using on a server system 100,while other steps (e.g. receiving user input, generating graphicalrepresentations of fixator rings and struts, etc.) may be performed on aclient system 100.

Software running on one or more computer systems 100 is described belowwith reference to various tabs used to organize the softwarecapabilities. In some embodiments, the software includes imageplacement, segment placement, ring definition, ring placement, segmenttranslation, correction setting, and correction prescription functions,each accessible and controllable by a user through an associated tab ina graphical user interface.

Place Image (ID, Sessions and Import Images) Tab

In some embodiments, a patient record for the bone deformity correctiontreatment program is created by a user using a graphical user interface.FIG. 3 shows a screen shot of an introductory “ID, SESSIONS, & IMPORTIMAGES” input section 200, which allows a user to enter data for apatient information record that can be saved. Introductory input section200 includes data entry fields for a number of patient identifiers suchas a patient name field 202, a medical record number or ID field 204,and a deformity type field. In some embodiments, multiple days' worth ofinformation and calculations for the same patient may be saved. Forexample, preoperative templating, intraoperative images, and a number ofpostoperative images on different days can be saved.

In some embodiments, the system also allows the user to save/storemultiple images and correction calculations for the same patient and toupdate the correction in real-time during the correction period, ratherthan waiting for the end of a correction prescription, described below.Real-time updating facilitates arriving at a desired outcome in ashorter time by error correcting during, rather than after, the userinput process.

As shown in FIG. 3, once the patient record has been created, a user ofthe system can enter data identified by each of multiple tabs placed onthe top side of the screen: “ID, SESSIONS, & IMPORT IMAGES” 200, “PLACESEGMENTS” 300, “DEFINE RINGS” 400, “PLACE RINGS” 500, “TRANSLATESEGMENTS” 600, “SET CORRECTION” 700, and “CORRECTION PRESCRIPTION” 800.

FIG. 4 shows a screen shot of the graphical user interface of an imagedrag and drop function of the “ID, SESSIONS, & IMPORT IMAGES” tab 200.This tab allows drag and drop placement of two digital medical imagesonto the editing screen. In some embodiments, the system's graphicaldisplay comprises at least two digital medical images, each imagedisplaying a view from a different angle of a patient's anatomicalstructure. Customarily, a healthcare professional will take tworadiographs of the patient's anatomical structure, e.g. a bone withdeformities. The radiographs of the patient's anatomical structure mayshow either simply the bone with deformities in isolation, or the bonewith deformities following osteotomy in conjunction with an externalfixator (with rings and struts) affixed to the bone. Generally one imageis anterior-posterior (AP, or XY plane), while the other image, 90degrees rotated relative to the first, is medial-lateral (lateral, ZYplane). Two radiographs of the patient's anatomical structure may beturned into digital medical images and imported into the system. Notethat the XY and ZY planes need not be perfectly orthogonal in real 3Dspace if the two radiographs are not perfectly orthogonal. Below, theterm XYZ space refers to the real 3D space while the XY and ZY planesrespectively refer to the AP and lateral image planes as determined bythe angle of the radiographs as they are taken relative the patient'sanatomic structure.

As shown in FIG. 4, prompts 210, 220 on the editing screen direct theuser to place the digital medical images. A graphic associated withprompts 210, 220 indicates a side (e.g. left side in FIG. 4) that iscurrently selected for editing. In some embodiments, the two digitalmedical images do not have to be truly orthogonal; the system may bedesigned to be able to compensate for different rotation angles andcorrect rotational deficiencies as described below, to correct for anydeparture from orthogonality for the orientation of the two images.

FIG. 5 shows a screen shot after a first digital medical image 230 hasbeen dropped in the space defined by the prompt 210 shown in FIG. 4.Once the digital medical image is placed in its designated location,prompts for the expected orientation of the image are displayed on theleft side of the screen: image manipulation tools on the left side ofthe screen include a flipping tool 240, a rotation tool 250, and acropping tool 260, to optimize the representation of the image used.

Place (Set) Segments Tab

The imported digital medical images may be used to designate theposition of the patient's bones to the system. FIG. 6 shows a screenshot of a graphical user interface for defining bone segments using the“PLACE SEGMENTS” (segment-placing) tab 300, which allows defining anumber (count) and associated positions of bone segments.Segment-placing tab 300 is used to define locations/representations 306,306′ of a bone or a portion of bone, as well as the number and positionof bone segments 310, 310′. As shown in FIG. 6, segments 306, 306′ aredefined by a user by drawing lines down the middle of corresponding bonerepresentations. The system determines the appropriate locations ofsegments 306, 306′ by detecting the locations of corresponding graphicaluser input (e.g. mouse clicks at the end points of segments 306, 306′).Corresponding segments on the AP and lateral views are color-coded tomatch labels associated with each view in the left image tab. Segmentscan be dragged by endpoints 320, 320′ or by selecting an internal pointalong the line representing a bone.

CORA locations 340, 340′ are automatically drawn and color-coded withboth colors of the segments involved. CORA or center of rotationalangulation is a well-defined term in deformity analysis and refers tothe point around which a segment can be rotated to bring it intoalignment with another segment. In the simplest form, it is theintersection of the two segments. A section 330 on the left side of thescreen allows selecting a reference segment in each image; a referencesegment is one whose location stays constant throughout the analysisdescribed below, and ideally is perpendicular to the X-ray beam.Non-reference segments may be termed moving segments.

As shown in FIGS. 7-8, in some embodiments joint line(s) and segmentbisector(s) can be placed by a user so as to help facilitate theaccurate placement of segments. Segments typically intersect joint linesat defined positions and angles, as well as the midpoint of a diaphysealbone bisector. These anatomic relationships are used by fixing thesegment to the appropriate joint line or bisector point(s). Joint linesare fixed at the closest segment end-point, while segments are fixed tobisectors using a best-fit linear regression equation.

FIG. 7 shows a screen shot illustrating the placement by a user ofmultiple segments 310 on a digital medical image 230 according to someembodiments of the present invention. A pair of angles 350, betweenadjacent segments, characterize the size of the deformity to becorrected. The user may place segments 310 using a mouse or other inputdevice, and the system's determination of the locations of segments 310may include determining the positions of user actions that identify theendpoints of segments 310 (e.g. mouse clicks at the appropriatepositions).

FIG. 8 shows a screen illustrating a user's setting of joint lines 360and bisectors 362 for each segment 310, 310′ on two digital medicalimages 230, 230′. Joint lines 360 help facilitate placement of segments310, 310′ by fixing each segment 310, 310′ to the correct anatomic pointon the corresponding joint line 360. Joint lines 360 also helpdemonstrate if there is a deformity close to the joint by measuring thejoint line angle. Bisectors 362 are drawn by a user between boundariesof a bone's diaphysis 366 (cylindrical portion) anywhere along the bone.A segment 310 should fall on the midpoints of these bisectors and iscalculated as a best-fit line between these points. Advantageously,linear regression may be used to define bisector best fit and generate adisplay of bisector closeness of fit (“R value”). The user can choose tolock or unlock the segment to the joint line(s) and/or bisector(s) 364using on screen commands.

Joint lines 360 can be named based on their anatomic location, to helpthe system understand the relationship between segments based onanatomic location, for instance, to pre-define if a CORA should be set.Naming also allows the program to set the appropriate location on thejoint line where the segment should intersect based on anatomic norms.The angle between the segment and associated joint line is displayed,and the “R” value for goodness of fit for multiple bisectors isdisplayed.

As noted above, CORA or center of rotational angulation is awell-defined term in deformity analysis and refers to the point aroundwhich a segment can be rotated to bring it into alignment with anothersegment. In the simplest form, it is the intersection of the twosegments. In some embodiments, the CORA for each segment pair isautomatically calculated and placed on-screen. The angular differencebetween adjacent segments (angular deformity) is calculated anddisplayed. If it's inappropriate to have a CORA between segments, suchas between the distal femur and proximal tibia at the knee, the CORA canbe turned off. In this circumstance, if joint lines are set at theseintersections, a joint angle is calculated and displayed. Defining thenames of joint lines can help the program to know if it should set aCORA active or inactive based on anatomic relationships.

For example, long leg hip to ankle digital medical images can beanalyzed in real time to assist with calculation of high tibialosteotomy correction. This starts with the definition of the femur andtibia segments and the proximal tibia joint line as defined above. Nextthe user can define the goal location for lower extremity mechanicalaxis after correction as a real time moving point along the tibial jointline with percentage of total joint line length calculated anddisplayed. Finally, the user can select an osteotomy location foropening or closing wedge osteotomy and the program will calculate thesize of the wedge to be inserted or removed. FIG. 60 shows an exemplaryscreenshot for high tibial osteotomy correction 1300.

Long leg hip to ankle digital medical images can be analyzed in realtime to assist with calculation of distal femoral osteotomy correction(not shown). This starts with the definition of the femur and tibiasegments and the distal femur joint line as defined above. Next the usercan define the goal location for lower extremity mechanical axis aftercorrection as a real time moving point along the femoral joint line withpercentage of total joint line length calculated and displayed. Finally,the user can select an osteotomy location for opening or closing wedgeosteotomy and the program will calculate the size of the wedge to beinserted or removed.

FIG. 9 shows a screen shot illustrating a user's defining multiple jointlines 360, for each segment 310. If a segment comprises an entire bone,it may be more appropriate to have a joint line at each the end of thesegment. The system also displays population norms 368 for joint line tosegment angles. It highlights when joint line to segment angles are notwithin anatomic norms to draw attention to the user that a deformityexists close to the joint.

FIG. 10 shows a screen shot where segments 310 are on different sides ofa joint 308, the concept of CORA is not valid, so the CORA can be turnedoff, shown at 369. If joint lines 360 are defined for these segments oneach side of a joint, a joint angle is calculated. The joint anglemeasures the congruency of reduction of the joint (i.e., it should beclose to 0°).

A first level of error correction may be done at this point. In reallife two segments represent the same anatomic structure, and thisknowledge can be used to perform a first step in error correction. Wecall this rotating for reference. The x-ray beam should be perpendicularto a reference segment when images are taken. A reference segment ispredefined by the user and stays constant throughout the correctionanalysis. As previously stated, moving segments are segments that arenot the reference segment.

FIGS. 11A-B show screen shots illustrating the concept of rotating forreference. In FIG. 11A, the reference segment has been set to segment 1,shown at 370, 370′. Changing to segment 2, shown at 372, 372′ as in FIG.11A, rotates the images so segment 2 is parallel and vertical in both APand lateral plane images. Finally, the visual rotation of the image canbe turned on (shown at 380 in FIG. 11A) or off (shown at 382 in FIG.11B). The visual rotation can be turned on or off by the user, thoughbehind the scenes, the program continues to correct for the rotation forreference.

Define Rings Tab

In some embodiments, once the location of the segments has beenfinalized, the next step involves graphically representing the externalfixator superimposed on a graphical display of at least one digitalmedical image. An external fixator comprises at least two ringsinterconnected by a plurality of struts. The system uses a tiltableellipse to represent a ring of an external fixator attachable to thepatient's anatomical structure, in this case a patient's bone(s). In oneembodiment the system may receive ring identification user inputidentifying at least two points defining the tiltable ellipse. Thedigital medical image may show an external fixator, which may appear asalready attached the patient's bone. In such an embodiment, a user maymanipulate a synthetic fixator representation to match the position ofthe real fixator in the digital medical image, in order to determine the3D position of the real fixator from the screen position(s) of thesynthetic fixator elements. In an alternative embodiment, the digitalmedical image may show only the patient's bone(s). In such anembodiment, a synthetic fixator representation may be superimposed onthe digital medical image to represent a desired/simulated positioningof a potential real fixator. In some embodiments, a display of atiltable ellipse superimposed on a graphical display of at least onedigital medical image, in this case a patient's radiograph that has beendigitized, is generated using user-controllable DEFINE RINGS and PLACERINGS tabs, as described below.

FIG. 12 shows a screen shot of a “DEFINE RINGS” tab 400. The user of thesystem starts by entering the type and size of ring information for eachring-pair. A graphical user interface may be used as well to click on aschematic of a ring to define where the struts are attached. In oneembodiment, the brand and model of each ring may be entered, andpreexisting ring/strut size information retrieved according to theentered brand and model.

FIG. 13 shows a screen shot of a DEFINE RINGS tab 400 where multiplering-pairs 410 have been defined. In this case, the user selects whichring pair they are currently defining. A check box 412 reminds the userif a ring-pair has been defined. FIGS. 14A-14B show screen shots of theDEFINE RINGS tab 400 where the user has defined the ring geometry forthe top and bottom ring of a ring pair by selecting the type 414 andsize 416 of rings being used.

After the system generates the graphical representation of the ring(s),e.g. the ellipse, strut attachment points may be selected by a user.FIG. 15 shows a screen shot of the DEFINE RINGS tab 400 where the useris selecting an attachment point 418 for each strut. The user has theflexibility to use any ring holes 420 to attach the ring to the bone,and still be able to attach a strut to the ring and make thecalculations described below. In some embodiments, by selecting anattachment point for each strut, the user may define a strut angle andstrut radius.

FIG. 16 shows a screen shot of a DEFINE RINGS tab 400 in which the userhas chosen to attach a strut to the ring by way of an intermediary pieceof hardware, in this case, a ring drop 426. Using the ring drop 426allows dropping the strut for a predefined distance from the ring. Itallows the user to move struts out of the way of other hardware toprevent the struts hitting fixed structures as the rings/struts moveduring correction. The length of ring drop 426 defines the strut droplength 428.

FIG. 17 is a schematic drawing showing a top, perspective, front andside views of a ring extender 426 used to attach a strut to a ringaccording to some embodiments of the present invention. This separatehardware allows the user to attach the strut to a ring at any point onthe ring by extending the strut radius from a given ring position, andcould have a built-in ring drop as well. Variations in the productscould alter the strut angle as well.

Place Rings Tab

Although a ring-pair is commonly a set of two rings connected by sixstruts that connect two segments, other alternative ring and strutcombinations may also be used. The ring-pair enables one segment to bemoved relative to another to facilitate a correction. By changing thelength of each strut according to a prescription calculated in thefollowing tabs, the rings can be manipulated in space and thecorresponding segments manipulated in the patient. To make thesecalculations, the program uses its knowledge of the 3D shape of thering. The calculations described below are generally applicable to anyring, or really any shaped structure. Such calculations may rely onthree-dimensional measurements of ring/structure sizes pre-entered intothe program's database. The user chooses the ring type and size to letthe program know which ring data to use for its calculations.

FIG. 18 shows a screen shot of a “PLACE RINGS” tab 500 that allows theuser to define the location of the external fixator ring(s) relative tosurrounding anatomic structures; the ring pair being placed is chosenfrom a drop-down menu 510.

In some embodiments, a user begins by drawing a ring bisector for eachring. FIG. 19 shows a screen shot of the PLACE RINGS tab 500 where aring bisector 512 is drawn on the AP view of the digital medical image230. The ring bisector is constant despite changes in x-ray beamposition and therefore allows for accurate ring position definition. Theprogram then uses an ellipse to represent the graphical display of thering on the AP and lateral digital medical images. The ellipse isrepresented by a center, an “a” or long axis length, a “b” or short axislength, and a slope. The center, “a” axis length, and slope are set bydrawing the ring bisector.

In some embodiments, a tilted ellipse representing a ring is generatedusing a set of mathematical formulas described below. FIGS. 47A-Billustrate a tilted ellipse 1100 in a 2D (X,Y) plane, where the X-axis1102 is shown perpendicular to the Y-axis 1104. The two axes of theellipse are represented by the “long” axis of length 2*a 1106 referredto as “a” axis and the “short” axis of length 2*b 1108 referred to as“b” axis. An angle θ, shown at 1110, represents the angle between the“a” axis 1106 and the X-axis 1102. When θ=0 the ellipse's “a” axis isparallel to X-axis and the “b” axis is parallel to Y-axis. Each point inthis 2D plane is represented by a pair of numbers; they are thecoordinates of the point. Significant points on the ellipse include: thecenter of the ellipse with coordinates (x_(c) y_(c)) 1112; a point onthe ellipse with coordinates (x(n), y(n)) 1114 (where “n” is an angle,expressed in radians, ranging from 0 to 2π); the points (x₀, y₀) 1116and (x₁, y₁) 1118 are the endpoints of the “a” axis (the “long” axis).

The x and y coordinates of a point on a tilted ellipse in a 2D plane maybe expressed as:x(n)=x _(c) +a·cos n·cos θ−b·sin n·sin θ  (1)y(n)=y _(c) +a·cos n·sin θ+b·sin n·cos θ  (2)

The coordinates (x(n), y(n)) 1114 of a point on the ellipse may becalculated as functions of the following parameters: the center of theellipse (x_(c) y_(c)) 1112, the values of “a” 1106 and “b” 1108, theangle n 1118 and the angle θ 1110. The ellipse may be translated byadding/subtracting horizontal and vertical translation extents to thecenter coordinates (x_(c) y_(c)). Rotational transformations aredescribed in detail below.

FIG. 20 shows a screen shot of the PLACE RINGS tab 500 where, afterplacing four ring bisector axes 512 (AP & lateral, top & bottom), theprogram places an initial set of rings. At this stage, the program canalso scale the images, segments, and rings relative to each other, asshown at 516. The rings 514 are displayed as double ellipses 520 showingthe true height of the ring. FIG. 21 shows a screen shot of the PLACERINGS tab 500 of a display of the ring as a single ellipse 522.

In some embodiments, once the top and bottom ring centers are defined inboth the AP and lateral planes, the image, segments, and ring parameterscan be scaled. Scaling corrects for differences in the ratio of distancefrom the x-ray source to anatomic structure and distance from anatomicstructure to x-ray plate. This ratio will magnify or shrink the AP viewrelative to the lateral view. Calculating the scale factor for the APand lateral planes corrects for this magnification. Scaling can be basedon any structure that is known to be the same on the AP and lateralviews. These include the distance between joint line centers of the samebone segment (when defined) or ring centers (when defined).Alternatively, size markers included when the digital medical image wastaken may be used by the program to determine magnification and scaling.

The “b” axis length may be defined as a ring spread. The ideal orexpected ring spread is the spread that would be seen if the x-raysource were an infinite number of parallel beams. However, x-rays aresources are point based, which causes parallax in the ring projectionbased on where the point source is relative to the ring. This makes thering spread bigger or smaller even though the actual ring positionhasn't changed.

In some embodiments, a user is able manipulate the spread to match whatis seen on the screen (view ring spread). The user may need to adjustthe ring bisector as the view ring spread is set. This is a form oferror correction for x-ray beam position.

FIG. 22 shows a screen shot of a PLACE RINGS tab 500 where the width andposition of the rings 514 are adjusted by manipulating ring axes 512.This is done by manipulating handles 524 on the ring bisector axes 512or by separate controls.

FIG. 23 is a screen shot of a PLACE RINGS tab 500 showing adjustment ofthe ring “b” or short axis 526′ to match the ring position on screen.This can be done by manipulating handles 524′ on the ring bisector 512′or by separate controls.

In some embodiments, as illustrated in FIG. 47B, the movement of theendpoints (x₀, y₀) 1116 and (x₁, y₁) 1118 of the “a” axis adjusts(x_(c), y_(c)) 1108, θ (not shown), and the “a” axis 1106 length asfollows:x _(c)=(x0+x1)/2  (3)y _(c)=(y0+y1)/2  (4)a=sqrt((x1−x0)^2+(y1−y0)^2)/2  (5)θ=tan−1((y1−y0)/(x1−x0))  (6)

FIG. 48A shows an exemplary embodiment of an ellipse 1100, with an “a”axis 1106, and an adjustment handle 1200. As shown in FIG. 48B, theellipse 1100 may be dragged by its “a” axis endpoints 1116, 1118.

Once a ring has been defined, in the PLACE RING tab the system receivesring rotation user input controlling an axial rotation and an azimuthalrotation of the graphical representation of the ring superimposed on theat least one digital medical image. In some embodiments, a user cancontrol the axial and azimuthal rotations of each of two rings (top &bottom) individually. Individual ring rotation capabilities account forthe possibility that a ring may be fixed to a bone segment in a rotatedposition (ring mounting rotation), either volitionally or because oferror inherent in the mounting procedure.

FIG. 24 shows a screen shot of a PLACE RINGS tab 500, illustrating auser's adjusting a ring rotation, as marked by the arrows 528. First theorientations of the top and bottom rings 514 are adjusted relative tothe segment 310. This is best done by comparing the strut position 530of the AP view 230. Both the AP and lateral views rings change as thering rotation is manipulated here (compare with FIG. 23). A user canrotate a ring by manipulating handles 524 on the ring bisector 512, onthe ring itself, or by separate controls.

In some embodiments, as shown in FIGS. 49A-B, one type of “axialrotation”, for example a rotation of the display of the ring around the“a” axis 1106 is accomplished by changing the length of the “b” axis1108. In some embodiments, a user drags an adjustment handle 1200 (FIG.49B) up & down to increase or decrease the “b” axis length (whichreflects an axial rotation of the corresponding ring 3D position). FIGS.51A-B illustrate examples of ring rotations showing rotational reference1120 in two different locations, but where the ring 1100 looks the same.

“Azimuthal rotation” of a 3D ring is rotation of the ring around an axisthrough its center point and perpendicular to a plane defined by thering. As shown in FIG. 47C, to keep track of a ring's azimuthalrotation, a separate angular measure is maintained, the azimuthal ringrotation, or φ, shown at 1120, and a fixed point on the ring is definedas an azimuthal rotational reference point (x_(ref), y_(ref)) 1122.

FIGS. 50A-B show that changing φ need not change the appearance of aring 1000 without azimuthal features (i.e. a plain ring). However,azimuthal rotation will move a rotational reference point 1210 aroundthe ring. The x and y coordinates of a given point on the ring may beexpressed, relative to the reference point, as:x(n)=x _(c) +a·cos(n−φ)·cos θ−b·sin(n−φ)·sin θ  (7)y(n)=y _(c) +a·cos(n−φ)·sin θ+b·sin(n−φ)·cos θ  (8)

Known points on the ring, such as strut fixation points, can be definedby their azimuthal rotation relative to the rotation reference point.Strut position user input may identify 3D positions for the plurality ofstruts on the external fixator. For example, to find a point at 0.1radians along the ring relative to the rotation reference point, thevalue n=0.1 is entered into the equations above. Once strut positionuser input has identified the 3D position of each strut of the externalfixator has been identified, then the ring rotation user input maycontrol an axial rotation and an azimuthal rotation of a graphicalrepresentation of the plurality of struts superimposed on the digitalmedical image.

In some embodiments the system receives ring rotation user inputcontrolling the axial rotation and the azimuthal rotation of thegraphical representation of the ring superimposed on a first digitalmedical image of the at least two digital medical images according toring rotation user input entered along a second digital medical image ofthe at least two digital medical images. In some embodiments, rotationof two rings (top & bottom) is corrected concurrently in either the APor lateral x-ray view. Such concurrent rotation accounts for errorsintroduced if the anatomic segments are rotated relative to the true APand lateral planes when x-rays are taken (ring x-ray rotation). The usermay adjust the ring bisector as the ring x-ray rotation is set, as aform of error correction for x-ray beam position.

FIG. 25 is a screen shot of a PLACE RINGS tab 500 illustrating a user'sadjusting the ring rotation of a lateral view 230′ relative to an APview 230. The rotation can be understood by comparing the strutpositions 530′ in the lateral view 230′. Both the top and bottom rings514′ of the lateral image change as the ring rotation is manipulated.The ring can be rotated by a user by manipulating handles 524′ on thering bisector 512′, on the ring itself 514′, or by separate controls.

In some embodiments, changing the azimuthal rotation of a ring in oneplane can be used to set azimuthal rotation of a ring in another plane.For example, when rotating a ring in the XY plane, a similar rotationcan be made on the corresponding ring in the ZY plane. This has theeffect of rotating the “true” ring relative to the anatomic structure inboth the XY and ZY planes. FIGS. 55-56 show screen shots illustrating anexaggerated rotation of the top ring 514. Notice the change in positionof the struts 530.

Changing the azimuthal rotation of a ring in one plane can also be usedto set the azimuthal rotation of another ring in the same plane. Suchcoupled rotations can serve two purposes. First, coupled rotation canallow the “linking” of two rings. In practice, two or more separatepairs of rings and struts can be applied to anatomic structures on thesame body part, and the bottom ring of one ring pair can be physicallyattached to the top ring of another ring pair. These “linked” rings canbe rotated together such that when the azimuthal rotation of one ring ischanged, the azimuthal rotation of the “linked” ring is also changed.

Second, the azimuthal rotation of a ring in one plane setting theazimuthal rotation of another ring in the same plane can be used toadjust for error introduced by the plane not being orthogonal to areference plane when radiographs are taken. When initially set, theazimuthal rotation of the second plane is set 90° to the first assumingthat the two planes are orthogonal. By rotating both rings of a ringpair in the second plane, the user sets the azimuthal rotation of bothrings as if the azimuthal rotation the second plane was not takenorthogonal to the first plane. FIG. 57 shows a screen shot illustratingan example of a rotation of both rings 514′ on the lateral image 230′,as compared to FIG. 56.

After desired ring parameters are defined by the user (e.g. ringbisector, view ring spread, ring mounting rotation, ring x-rayrotation), in some embodiments a number of calculations are made tominimize error in the ring definition process.

In some embodiments, a first calculation generates an averaged ring. Ifa ring is a circle in 3D, the bisector (a measure of the circle'sdiameter) should be the same on AP and lateral views. To minimizevariation in the user entered ring parameters, the ring “a” axis lengthsmay be averaged between AP and lateral views.

A second calculation generates an expected ring spread. The expectedring spread is the ring spread that would occur if the x-ray beam were“ideal”, that is if it were an infinite number of parallel beams ratherthan a point based beam source. The expected ring spread may becalculated from the ring bisector of the opposite radiographic image.

A third calculation generates a corrected, rotated ring. Such a ringrotation corrects the ring parameters and segment position for variationin ring x-ray rotation from true orthogonal planes. The ring bisectorand expected ring spread may be recalculated for the already averagedring parameters. The segment angulation may also be corrected since thetrue deformity size will be different if the x-ray image planes are notorthogonal.

A fourth calculation sets the ring in the AP and lateral views. In someembodiments, the ring may be represented as a single ellipse based onthe ring view parameters above, or a double ellipse using the additionalknowledge of ring thickness set when the user chooses a ring during ringdefinition.

A fifth calculation defines a number of strut points. The systemreceives strut position user input identifying 3D positions for theplurality of struts of the external fixator on the at least one digitalmedical image. Once strut position user input has identified the 3Dposition of each strut of the external fixator, then the ring rotationuser input may control an axial rotation and an azimuthal rotation of agraphical representation of the plurality of struts superimposed on thedigital medical image. Strut positions relative to the ring position mayhave been defined prior to controlling the ring rotations. Once the true3D ring position in space has been calculated, strut end points in spacemay be calculated from the known strut angle on the ring, strut radius,and strut drop distance. The ring plane (the 3D plane in which the ringlies) is calculated, and may be represented as a bisector to the ringplane and the position of the master point on the plane. The strutpositions in space are calculated in the ring plane using the strutangle and strut radius by a simple polar coordinate calculation. Thedrop strut position is calculated by moving the ring plane up or downalong the plane bisector. The strut positions in the AP and lateralviews as well as positions that describe the “look” of an actual strut(strut view points) are also calculated in a similar fashion.

A sixth calculation generates a strut distance in pixels for each strut,which may be simply a three dimensional distance between points.

A seventh calculation generates a pixel scale factor (mm/pixel), whichconverts a distance in scaled pixels to a distance in millimeters. Apixel scale factor can be calculated from the known ring diameter(mm)÷averaged ring bisector “a” length (pixels), the average of the truestrut lengths (mm)÷strut distance in pixels (pixels), or from a knownsize marker on the original radiograph. The true strut lengths may beentered by the user as read from the actual hardware.

An eighth calculation generates a strut scale factor (unitless) for eachindividual strut. This is the true strut length (mm)÷(strut distance inpixels (pixels)*pixel scale factor) for each individual strut. The strutscale factor can be used in a final correction for each strut, tocorrect for any remaining error involved with the definition of ringpositions or x-ray beam position. For example, this type of error mayoccur if the x-ray beam is not orthogonal to the reference segment. Thestrut scale factor ensures that the initial strut lengths calculated inthe correction tab will match the initial true strut lengths.

In some embodiments, the user can template a ring pair by placing atheoretical ring pair on an image. Strut change minimizationcalculations can be made to show the user the ideal ring placement tominimize the number of strut changes (strut replacements) that areneeded during a correction.

In some embodiments, special hardware is used to facilitate properidentification of ring positioning using digital imaging. A wide varietyof shapes may be used with the common purpose of marking a spot on theexternal fixator ring that is easily identifiable on both the AP andlateral images. Such marking facilitates setting of proper view ringspread, ring mounting rotation, and ring x-ray rotation.

In some embodiments, having received axial and azimuthal rotation userinput, the system calculates a 3D-position of each ring of the externalfixator relative to the anatomic structure on each of the at least twodigital medical images according to the ring rotation user input. Thefirst step in determining a 3D ring's position based on the ring'sprojection in two planes is to rotate the (graphics in the) two planesso their Y-axes are parallel. During the act of shooting a radiograph, arotational artifact can be introduced when changing between imagingplanes. To correct for this artifact, the images may be rotated based onthe user's definition of a reference bone segment on the image in eachplane.

An actual ring in 3D is represented as corresponding ellipses in 2-Dplanes. FIGS. 49D-E illustrate two orthogonal planes, XY and ZY. Inpractice these planes do not have to be perfectly orthogonal. These twoplanes share a common Y-axis 1104. FIG. 49D shows the YX plane, withX-axis 1102, ellipse center (x_(c), y_(c,xy)) 1128, ellipse endpoints(x_(0,xy), y_(0,xy)) 1130 and (x_(1,xy), y_(1,xy)) 1132, and short axisb_(xy) 1134. FIG. 49E shows the ZY plane with Z-axis 1116, ellipsecenter (z_(c), y_(c,zy)) 1118, ellipse endpoints on the long axis(z_(0,zy), y_(0,zy)) 1140 and (z_(1,zy),y_(1,zy)) 1142, and short axisb_(zy) 1144.

At the time of shooting the radiograph, the reference bone segment isthe segment perpendicular to the x-ray beams. Since the reference bonesegments represent the same straight line in each plane, rotating eachimage so the reference bone segment is parallel to the Y-axis, andparallel to each other, removes any artifact introduced by rotation ofthe radiograph. FIG. 52 illustrates an image rotated for reference.FIGS. 47F-G illustrate the rotation of a segment 1148, to bring itparallel to the Y-axis 1104.

In some embodiments, the AP and lateral images are scaled relative toeach other and translated along the Y-axis to match correspondinganatomic structures. During the act of shooting a radiograph, a scalingartifact can be introduced based on the distance from the x-ray sourceto the anatomic segment, and the distance from the anatomic segment tothe x-ray cassette (or digital collector). To correct for this artifact,each subsequent image is scaled relative to the first. FIGS. 52-53 showscreen shot of a lateral image 230′ that has been scaled, as shown inFIG. 53. A scaling factor can be determined from the imaged size ofobjects of known real size (e.g. length). A number of structures ofknown size present on each image may be used to generate a scalingfactor, including: the length of a single ring's “a” axis, the distancebetween the center points of two rings' “a” axes, the distance betweenthe center points of two joint-lines; or the length of a sizing markerof known length present on the images.

Matching each image's Y axis set point (y_(set)) may be achieved byidentifying a point on each image that represents the same structure Anumber of identifiable structures present on each image can be used fory-axis set point matching, including the center point of a single ring's“a” axis and the center point of a joint-line.

A scale factor (sf) for image i relative to image 0 based on a knownfixed distance (d) may be defined as:

$\begin{matrix}{{sf}_{i} = \frac{d_{0}}{d_{i}}} & (9)\end{matrix}$and a point (xp, yp) in image i is scaled to match scaling and Y-axistranslation (matching fixed point (x0, y0) to a given y_(set)) as:x _(n-scaled) =x _(0-rotated)+(x _(n-rotated) −x _(0-rotated))·sf_(i)  (10)y _(n-scaled) =y _(0-rotated)+(y _(n-rotated) −y _(0-rotated))·sf_(i)+(y _(set) −y _(0-rotated))  (11)

Once scaling is complete, a conversion factor can be determined betweena distance in the image and an actual distance based on a number ofmethods, including: the length of a single ring's “a” axis and the knowndiameter of the ring it represents, the length in three dimensions of astrut and the known length of the strut it represents; and/or the lengthof a sizing marker of known length present on the images.

Scaling and rotating for reference can also be applied in reverse fordisplay purposes. That is, many of the calculations described belowoccur in the rotated for reference and scaled XYZ space, while we maywant to display the un-scaled and un-rotated values on the screen. Theabove formulas can be applied in reverse to calculate screen data fromrotated for reference and scaled data.

Once the images are rotated for the reference segment and scaled,further corrections can help convert the two 2D ellipse representationsof a ring into a 3D representation. First, as described above, the XY adZY plane's elliptical representation of the ring's center point y valuesare equal: yc,xy=yc,zy. This can be done because the real life ring'scenter point in the XYZ space will match the center point in both the XY(xc, yc, xy) and ZY (zc, yc, zy) planes. So the center point of the ringcan be represented by the three dimensional point (xc, yc, zc). As shownin FIG. 53, the Y-axis values of center points 1230, 1230′ are equal.

The next adjustment corrects for parallax artifact introduced when pointsource x-ray beams are used. To understand this artifact, consider thedifference in radiographs of a ring taken with the x-ray beam directedperfectly parallel to the ring versus a beam translated away from theparallel position. The first radiograph will display the ring as a line,while the second will display the ring as an ellipse. They are the samering in space, but they appear differently on the radiograph dependingon where the point-source x-ray beam is positioned.

The information in the (near) orthogonal planes is used to correct forthis parallax effect. Ideal “b” axes in the XY and ZY planes are basedon the Y axis height of the “a” axis in the ZY and XY planesrespectively: bxy-ideal=abs(y1zy−y0zy)/2; bzy-ideal=abs(y1xy−y0xy)/2.FIGS. 54A-B illustrate a correction of the parallax effect in thelateral view of an ellipse. As the user adjusts the “a” axis endpoints1232, 1234, the corresponding “b” axis 1236 in the opposite plane isadjusted. The user can further adjust the “b” axis length, as describedabove when discussion axial ring rotation, to help match the graphicalellipse representation of a ring to the ring on the radiograph. However,when calculating the true position of the ring in 3D space, the useradded “b” axis adjustments are discarded and the “ideal” b axis lengthis used.

Finally, a 3D representation of the ring can be defined as the centerpoint (xc, yc, zc), in a plane defined by the “a” axes in the XY and ZYplanes, with diameter a-averaged=(a_(xy-scaled)+a_(zyscaled))/2.

Conversion between the 3D XYZ space and the orthogonal image planes canbe made using the center point of the ring as P1, the end-point of the“a” axis in the XY plane as P2, and the end-point of the “a” axis in theZY plane as P3, following the techniques defined below. A ring's planecan also be represented as a 3D vector (V_(orthogonal)) perpendicular tothe ring originating from the ring's center point. This can becalculated based on the cross product of two 3D vectors, one from thecenter point to one end of the “a” axis in the XY plane, and one fromthe center point to one end of the “a” axis in the ZY plane.{right arrow over (V)} _(xy)=(x _(c) ,y _(c) ,z _(c))→(x _(1xy) ,y_(1xy) ,z _(c))  (12){right arrow over (V)} _(zy)=(x _(c) ,y _(c) ,z _(c))→(x _(c) ,y _(1zy),z _(1zy))  (13){right arrow over (V)} _(orthogonal) ={right arrow over (V)} _(xy)×{right arrow over (V)} _(zy) (vector cross-product)  (14)

In the more general sense, a plane is defined as based on three 3DpointsP1=(x1,y1,z1), P2=(x2,y2,z2); and P3=(x3,y3,z3)  (15)

Some intermediate values are also defined, including:d12=sqrt(x2−x1)^2+(y2−y1)^2+(z2−z1)^2)  (16)d23=sqrt(x3−x2)^2+(y3−y2)^2+(z3−z2)^2)  (17)d13=sqrt(x3−x1)^2+(y3−y1)^2+(z3−z1)^2)  (18)temp1=(d13*d13+d12*d12−d23*d23)/(2*d12)  (19)temp2=sqrt(d13*d13−a*a)  (20)

Point P1 is mapped to the origin of the 2D plane (P1->(0,0)); Point P2is mapped to a distance d12 along the 2D plane's X axis (P2->(0,d12));Point P3 is mapped to an intermediate point based on the calculationsabove (P3->(temp1, temp2));

Nine plane definition parameters are defined based on the above formulasso that we can calculate a 3D point P0=(x0,y0,z0) based on a 2D point inthe defined plane (i,j) such that:x0=c1*i+c2*j+c3; y0=c4*i+c5*j+c6; z0=c7*i+c8*j+c9  (21)c1=(x2−x1)/d12  (22)c2=(x3−c1*temp1−c3)/temp2  (23)c3=x1  (24)c4=(y2−y1)/d12  (25)c5=(y3−c4*temp1−c6)/temp2  (26)c6=y1  (27)c7=(z2−z1)/d12  (28)c8=(z3−c7*temp1−c9)/temp2  (29)c9=z1  (30)

A plane can also be defined based a 3D vector (V_(orthogonal))orthogonal to the 2D plane, and a separate point (P2=(x2,y2,z2)) in 3Dspace that lies in the 2D plane. The origin of the 2D planeP1=(x1,y1,z1) is defined as the closest point of P2 on V_(orthogonal). A3D vector (V₁₋₂) is defined from P2 to P1. We define a 3D vector (V₁₋₃)parallel to the cross-product of V_(orthogonal) and V₁₋₂, starting at P1with length of ½ the length of V₁₋₂. P3=(x3,y3,z3) is defined as theendpoint of V₁₋₃. The plane based on points P1, P2, P3 is defined asabove.

In response to receiving the ring rotation user input, the systemgenerates a display of the resulting graphical representation of thering superimposed on the at least one digital medical image. FIG. 26 isa screen shot of the PLACE RINGS tab 500 showing rotations involvingmultiple ring pairs 532′. FIGS. 27A-27F show screen shots of a userhighlighting each strut 530 by number 534 to assist with ringidentification.

FIG. 28 is a screen shot of the PLACE RINGS tab 500 showing a userentering true strut lengths 536 taken from the actual struts 530. Thisaids in calculating one or more scaling factors. As shown in FIG. 29,the user can choose to view the images with or without rotation forreference and/or scaling 538.

In some embodiments, the location of strut attachments on thering—defined by the manufacturer and selected by the user—in the 2D ringplane (the major plane of the ring), can be used to convert thisinformation to the position of struts in the XY and ZY planes. For eachstrut attachment point, the radius from the ring's center point to thestrut attachment point (strut_(radius) (n)), and the angle from thering's rotational reference point to the attachment point (strut_(angle)(n)) are both known. Additional devices may be attached to the ring tofurther modify the strut attachment point, which will in turn modify(strut_(radius) (n)) and (strut_(angle) (n)). To find the displayparameters for the strut attachment point, we can calculate:x _(strut)(n)=x _(c)+strut_(radius)(n)·2·cos(n−strut_(angle)(n))·cosθ−b·sin(n−strut_(angle)(n))·sin θ  (31)y _(strut)(n)=y _(c)+strut_(radius)(n)·2·cos(n−strut_(angle)(n))·sinθ+b·sin(n−strut_(angle)(n))·cos θ  (32)

Struts may also have a portion directed perpendicular to the ring(strut_(drop)(n)) from the strut attachment point. This includes aportion of the strut itself that is fixed perpendicular to a ring aswell as half of the ring thickness itself. Additional devices may beattached to the ring to further modify the drop length, which will inturn modify (strut_(drop)(n)). One way to calculate the displayedportion of this dropped segment involves using the cosine of the ratioof the ring's “b” axis to the “a” axis. This displayed portion of thedrop length is then drawn perpendicular to the “a” axis to obtainx_(strut-drop)(n):

$\begin{matrix}{{{strut}_{{drop} - {xy}}(n)} = {\cos{\frac{b_{xy}}{a_{xy}} \cdot {{strut}_{{drop} - {xy}}(n)}}}} & (33)\end{matrix}$

Another way to calculate the dropped portion of the strut is tocalculate a 3D vector orthogonal to the major plane of the ring startingfrom the ring's center point (xc, yc, zc) as described above.Translation of the ring's center point along this 3D orthogonal to thering plane followed by recalculating the strut attachment point, asdescribed above, using the translated ring reveals the strut_(drop)point.

As shown in FIG. 55, a complete strut on the display can be drawnbetween the corresponding calculated strut_(drop) points between tworings in each of the XY and ZY planes.

The strut length can be calculated between corresponding calculatedstrut_(drop) positions between two rings in the XYZ space using astandard formula for distance between two points where x1, y1, z1 arethe drop point on ring 1, and x0,y0,z0 are the drop points on ring 0:

$\begin{matrix}{{{Strut}_{length}(n)} = \sqrt{\begin{matrix}{\left( {{x\; 1_{drop}(n)} - {x\; 0_{drop}(n)}} \right)^{2} + \left( {{y\; 1_{drop}(n)} - {y\; 0_{drop}(n)}} \right)^{2} +} \\\left( {{z\; 1_{drop}(n)} - {z\; 0_{drop}(n)}} \right)^{2}\end{matrix}}} & (34)\end{matrix}$

FIG. 30 shows a schematic drawing of various views of a model of a ringmarker 540 hardware that may be placed on a ring to facilitates properidentification of ring positioning when using digital imaging. A widevariety of shapes may be used with the common purpose of marking a spoton the external fixator ring that is easily identifiable on both the APand lateral images. This facilitates setting of proper view ring spread,ring mounting rotation, and ring x-ray rotation as described above.Shown here is just one of a variety of shapes that may be used for thispurpose.

Translate Segments Tab

FIG. 31 shows a screen shot of the “TRANSLATE SEGMENTS” tab 600 thatallows the user to translate non-reference segments relative to thereference segment to define the translational deformity. In addition tothe angular deformity described above, there can be translationaldeformity. Translational deformity is when one segment is translatedrelative to another. For example, imagine the situation where adjacentsegment are parallel to each other but one is shifted relative to theother one. Since they never intersect, there is no CORA and no angulardeformity. In this circumstance the deformity is purely translational.More commonly, there will be a component of angulation and translationin a deformity. The program calculates and updates a new CORA based onthe translated segments and updates the display in real time.

The second aspect of this tab is the ability to translate the CORA. Atranslated CORA still is a point around which rotation will correct theangular deformity but is moved away from the intersection of the twosegments. The translated CORA can be any point along the geometricbisector of the larger angle made by the two segments. Translating aCORA will either lengthen (distract) or shorten (compress) the movingsegment relative to the reference segment depending on which directionthe translated CORA is moved. The size of the lengthening or shorteningis calculated and displayed on screen graphically and numerically inreal time for easy user reference.

The third aspect available that the user can also choose to match thevertical position of the AP and lateral view CORAs (match CORAs). Inthis circumstance, the program will calculate the segment translation inone plane as the user translates the segment in the other plane.

Finally, the user can choose to define translation by marking start andend points on either segment of the deformity. With this concept, theuser defines a point on or near the reference segment (start point) anda point on or near the moving segment (end point) that is supposed toend up at the start point as the correction is made. The amount oftranslation and updated CORA and moving segment are calculated anddisplayed in real time.

As seen in FIG. 31, the segments 310, 310′ are displayed with associatedCORA 340, 340′. The arrows on the transverse lines 610, 610′ show thesize of the lengthening or shortening that will occur at points awayfrom the CORA. FIG. 32 shows a screen shot of the AP segment 310 beingtranslated medially. Of note is the new segment position 310 and updatedCORA position 614, as compared to the CORA position 612 in FIG. 31.

FIG. 33 is a screen shot of the “TRANSLATE SEGMENTS” tab 600 showing auser moving the CORAs 340. Here both the AP 340 and lateral CORA 340′have been moved to the apex side of the deformity, away from the centerline of the bone. This prevents impinging (binding) of bone segments310, 310′ during the correction. It is equivalent to correcting theangular deformity around the non-translated CORA and adding a smallamount of lengthening. The amount of lengthening is shown by the lines616, 616′ and arrows 618, 618′.

FIG. 34 shows a screen shot of the TRANSLATE SEGMENTS tab 600 where thevertical positions of the CORAs 340, 340′ are matched. In this case,when the user translates a segment 310 in one view it is translated inthe other view by an amount to keep the CORAs matched.

FIGS. 35A-35B show screen shots of multiple segments 310, 310′ beingtranslated. When a segment 622, 622′ is translated, all the segmentsbelow 624, 624′ (or above for those above the reference segment) aretranslated as well. This keeps the net translation for these othersegments at zero.

FIG. 36 is a screen shot of the TRANSLATE SEGMENTS tab 600 showing howimages may be viewed with or without rotation 626 for reference and/orscaling 628.

In some embodiments, a 3D point can be manipulated based on rotation andtranslation in each of the 3 planes defined by XYZ space: rotation_(xy),rotation_(zy), rotation_(xz), translation_(xy), translation_(zy),translation_(xz).

Rotation of a point P1(x1,y1,z1) in the xy plane of XYZ space around adefined point P0(x0,y0,z0) starts by setting a vector in the xy planeV₀₋₁=(x0,y0)->(x1,y1) in the xy plane with polar coordinates “radius”and “angle to the x axis” starting at point P0. In this description thexy plane refers to a real plane in XYZ space and may be distinct fromthe XY plane (AP plane) defined by the radiographic images.

$\begin{matrix}{{\overset{\rightharpoonup}{V}}_{{0 - 1},{radius}} = \sqrt{\left( {x_{1} - x_{0}} \right)^{2} + \left( {y_{1} - y_{0}} \right)^{2}}} & (35) \\{{\overset{\rightharpoonup}{V}}_{{0 - 1},{angle}} = {\tan^{- 1}\left( \frac{y_{1} - y_{0}}{x_{1} - x_{0}} \right)}} & (36)\end{matrix}$

The rotation then occurs by adding the desired rotation to the angularcomponent of V₀₋₁ to get V′₀₋₁.{right arrow over (V)}′ _(0-1,angle) ={right arrow over (V)}_(0-1,angle)+rotation_(xy)  (37)

Standard conversions can then be used to calculate P′1(x′1,y′1,z1) fromthe end point of V₀₋₁.x′ ₁ ={right arrow over (V)}′ _(0-1,radius)·cos {right arrow over (V)}′_(0-1,angle) +x ₀  (38)y′ ₁ ={right arrow over (V)}′ _(0-1,radius)·sin {right arrow over (V)}′_(0-1,angle) +y ₀  (39)

Rotation of a point P1(x1,y1,z1) in the zy plane of XYZ space around adefined point P0(x0,y0,z0) starts by setting a vector in the zy planeV₀₋₁=(z0,y0)->(z1,y1) in the zy plane with polar coordinates “radius”and “angle to the Z axis” starting at point P0. In this description thezy plane refers to a real plane in XYZ space and may be distinct fromthe ZY plane (lateral plane) defined by the radiographic images.

$\begin{matrix}{{\overset{\rightharpoonup}{V}}_{{0 - 1},{radius}} = \sqrt{\left( {z_{1} - z_{0}} \right)^{2} + \left( {y_{1} - y_{0}} \right)^{2}}} & (40) \\{{\overset{\rightharpoonup}{V}}_{{0 - 1},{angle}} = {\tan^{- 1}\left( \frac{y_{1} - y_{0}}{z_{1} - z_{0}} \right)}} & (41)\end{matrix}$

The rotation then occurs by adding the desired rotation to the angularcomponent of V₀₋₁ to get V′₀₋₁.{right arrow over (V)}′ _(0-1,angle) ={right arrow over (V)}_(0-1,angle)+rotation_(zy)  (42)

Standard conversions can then be used to calculate P′1(x1,y′1,z′1) fromthe end point of V₀₋₁.z′ ₁ ={right arrow over (V)}′ _(0-1,radius)·cos {right arrow over (V)}′_(0-1,angle) +z ₀  (43)y′ ₁ ={right arrow over (V)}′ _(0-1,radius)·sin {right arrow over (V)}′_(0-1,angle) +y ₀  (44)

Rotation of a point P1=(x1,y1,z1) in the xz plane of XYZ space is aspecial case of rotation of a point around a fixed 3D vector (V0), whereV0 is the y-axis. In the general case, we define the plane of rotationusing V0 and the point to correct (P1) as described in the planedefinition section above for plane definition using an orthogonal vectorand point. The origin of the 2D plane is the intersection of V0 and the2D correction plane. In the 2D correction plane, this intersection isdefined as point P0 _(converted)=(i0,j0). A 2D vector V0-1 is definedstarting from P0 _(converted) and extending to the point P1 asrepresented in the new 2D plane (P1 _(converted)=(i1,j1)).

$\begin{matrix}{{\overset{\rightharpoonup}{V}}_{{0 - 1},{radius}} = \sqrt{\left( {i_{1} - i_{0}} \right)^{2} + \left( {j_{1} - j_{0}} \right)^{2}}} & (45) \\{{\overset{\rightharpoonup}{V}}_{{0 - 1},{angle}} = {\tan^{- 1}\left( \frac{j_{1} - j_{0}}{i_{1} - i_{0}} \right)}} & (46)\end{matrix}$

The rotational correction is added to the polar form of vector V1 tofind V′1, whose end-point is P′1 _(converted)=(i′1, j′1).i′ ₁ ={right arrow over (V)}′ _(0-1,radius)·cos {right arrow over (V)}′_(0-1,angle) +i ₀  (47)j′ ₁ ={right arrow over (V)}′ _(0-1,radius)·sin {right arrow over (V)}′_(0-1,angle) +j ₀  (48)

This P1′_(converted) is converted back to 3D space as described above inthe plane definition section to find P′1=(x′1,y′1,z′1).

Translation of a point P0(x0,y0,z0) along the x-axis by x units, alongthe y-axis by y units, and along the z-axis by z units is accomplishedby adding values x, y, and z to the components of P0 to get P′0.P′ _(0,x) =x0+x  (49)P′ _(0,y) =y0+y  (50)P′ _(0,z) =z0+z  (51)

Translation may be made perpendicular to a line in the xy, zy, or xzplanes by calculating the appropriate x, y, and z components required toaccommodate such a translation.

It should be noted that if multiple corrections are made, they should bemade sequentially so that changes accumulate. For instance, adding theresults of rotating in xy plane and the zy planes will not give the sameresult as rotating in the xy plane, then rotating the result of thefirst rotation in the zy plane.

FIGS. 37A-37B shows screen shots of the “SET CORRECTION” tab 700. Thistab displays the correction of segments and rings described in thepreceding tabs and allows the user to customize the correction.

The correction algorithm is designed to allow independent correction ofangular deformity in three planes and translational deformity in threeplanes. The underlying concept is the ability to calculate a correctionpath for any point in space based on the deformity parameters describedin the preceding tabs.

The user can graphically define one or many 3D biological rate-limitingpoints for a bone deformity correction treatment to be performed usingthe external fixator; and, based upon this information, the system willcalculate at least one of a 3D bone correction speed and a number ofdays for the bone deformity correction treatment, and/or generate a bonedeformity correction plan specifying for each strut a daily sequence ofstrut lengths to be used in the bone deformity correction treatment.

These are points that will determine over how many days a correctionwill take place. By calculating a correction path rate for each 3Dbiological rate-limiting point (in 3D), using a large number of datapoints, an estimate of the true rate point correction path curve is madeand the true rate point correction path length can be calculated.Dividing this number by the user defined 3D bone correction speed(mm/day) returns the number of days for the bone deformity correction.

Once the number of days for the correction is known, the finalcorrection path for segment endpoints and ring axis points can becalculated. These correction paths are divided into the number ofcorrection days and filled in between correction days to make the curveslook smoother in the on screen views. Final strut lengths are calculatedfrom the corrected ring axis points.

The rate point(s) can be moved on the graphical user interface andcorresponding true rate point correction path, correction days, andfinal segment and ring corrections are calculated and displayed in realtime.

The user can manipulate the correction parameters in a number of ways.Corrections can be broken up into multiple steps. In each correctionstep, the user can individually set each parameter (of the sixcorrection parameters) as well as the correction rate and/or thecorrection days. In this way the actual correction is customizable. Forinstance, a small distraction can be set initially to disengage bonefragments prior to correction, or compression can be applied aftercorrection.

The user can graphically define where a “cut” would be made on theimage. The program then will move the portion of the image to becorrected with the segments/rings (partial image correction). This wouldshow the user what the actual corrected image would look like. Analternative is to define the segments displayed as parallel linesmarking the width of the bone.

Set Correction Tab

FIGS. 37A-37B are screen shots of the SET CORRECTION tab 700 showing theinitial correction screen showing the state of the segments 310, 310′and rings 514, 514′ initially (correction day 0) 710 and finally(correction day 1) 712. The path of the correction of the ends of themoving segment are shown by the arrows 714, 714′.

FIG. 38 shows a screen shot of the SET CORRECTION tab 700 where a ratepoint 716, 716′ has been added and can be moved by the user. Rate pointscan be added 722, edited 724, and deleted 726. The rate point is a threedimensional entity and has a representation in both the AP and lateralplanes of the digital medical images 230, 230′. The program calculatesthe true rate point correction path length 718 and then calculates thenumber of correction days 720 based on the correction rate (maximumdistance/day). The rate point correction path 728 is shown. Rate pointsare identified by color with the deformity pair for which they are set.

FIGS. 39A-39E show screen shots of the SET CORRECTION tab 700 ofcorrections shown for days 0, 2, 4, 6, 8 on the correction display 712.Note the correction path 728, 728′ and gradual correction of segmentsand rings. The user can scroll up and down the correction day number tosee the effect of correction visually, shown by 730, 730′.

FIG. 40 shows a screen shot of the SET CORRECTION tab 700 where a useris adjusting components of the correction individually. Here the userhas added 20 mm of length to the correction 740. Compared to FIG. 29,the correction paths 742, 742′ are changed. The final result is similarto FIG. 29D except lengthened longitudinally.

FIGS. 41A-41C show screen shots of a two-step correction on days 0, 8,and 28, respectively. In FIG. 41A step 1 of 2 is the initial correctioncalculated based on deformity parameters. Step 2 of 2 (shown here) adds20 mm of length 744. Notice on the rate paths that initially thecorrection is angular (curved portion) 746′ and then there is a lineartranslation (straight portion) 748′. In FIG. 41B on day 8 of 28 of thesame two-step correction, the angular correction is complete 746′ andthe linear translation 748′ is about to begin. Notice the segmentendpoint position 750′ on the correction path. In FIG. 41C on day 28 of28, the moving segment endpoint 750′ and ring 514′ have been translateddistally (linearly). The end result is the same as in FIG. 40.

FIGS. 42A-42B show screen shots of the SET CORRECTION tab 700 wherecorrections applied to multiple deformity pairs 752. FIG. 43 is a screenshot showing a user's ability to view images with or without rotationfor reference 754 and/or scaling 756.

In some embodiments, the manipulation (rotation with three degrees offreedom and translation in three planes) of a 3D representation of aring, as described in the sections above, is made by manipulating theend-points of the orthogonal vector (V_(orthogonal)) that defines the 2Dmajor plane of the ring. Manipulation of these endpoints can beperformed, as described above. We may also manipulate the 3D ringrotation reference point (P_(ref)) to keep track of ring azimuthalrotation during manipulation. The methods described above are used tomanipulate the end-points of V_(orthogonal) to find V′_(orthogonal) andto manipulate P_(ref) to find P′_(ref). Next, we define the plane of thering after manipulation using V′_(orthogonal) and P′_(ref), as describedin the plane definition section above. Orthogonal vectors(V′_(xy-ringplane) and V′_(zy-ringplane)) along the long axes of thering are defined in the plane of the ring using: the ring's center point(P′_(c-ringplane)), which is defined during ring plane calculation; themanipulated and converted ring rotation reference point in the plane ofthe ring (P′_(ref-ringplane)); and the ring azimuthal rotation angle.Finally, converting from the plane of the ring back to 3D space, asdescribed in the plane definition section above, returns vectorsrepresenting the axes of the ring in the xy and zy planes of 3D spaceV′_(xy) and V′_(zy). Converting P′_(ref-ringplane) from the plane of thering back to 3D space returns the manipulated reference point(P′_(ref)). With this information, all the points of the ring can beconstructed as described above. FIGS. 58A-B show screenshots of the SETCORRECTION tab 700 on days 0 and 1 of a correction.

In order to determine the number of days over which a ring manipulationis to occur, we can define one or more rate-points on the rotated forreference and scaled images in two or more planes (RP(n)=(x_(n), y_(n),z_(n))). FIG. 59A shows a screen shot of the SET CORRECTION tab 700 of amanipulation with a rate point 760 on day 0 of 10. The rate point ismanipulated by rotating in three planes and translating in three planesas defined above. Each of the six parameters of the total manipulationranging over a large number (e.g. x=0 to 1000) are divided, such thateach rotational and translational manipulation parameter atsub-manipulation x is multiplied by x/1000. Next the system calculateseach of these sub-manipulations to findRP′(n,x)=(x′_(n,x),y′_(n,x),z′_(n,x)). Finally, an approximation of thedistance over which RP(n) moves over the entire correction iscalculated:

$\begin{matrix}{{{distance}(n)} = {\sum\limits_{x = 0}^{999}\sqrt{\left( {x_{n,x}^{\prime} - x_{n,{x + 1}}^{\prime}} \right)^{2} + \left( {y_{n,x}^{\prime} - y_{n,{x + 1}}^{\prime}} \right)^{2} + \left( {z_{n,x}^{\prime} - z_{n,{x + 1}}^{\prime}} \right)^{2}}}} & (52)\end{matrix}$

The system can calculate the number of days required to complete amanipulation by dividing the user defined manipulation rate (rate(n))for a given rate point (rate(n));

$\begin{matrix}{{{number\_ of}{\_ days}(n)} = \frac{{distance}(n)}{{rate}(n)}} & (53)\end{matrix}$

Alternatively, if the user defines the number of days(number_of_days(n)), the rate of manipulation can be determined:

$\begin{matrix}{{{rate}(n)} = \frac{{distance}(n)}{{{number\_}{of}}{\_ days}(n)}} & (54)\end{matrix}$

Finally, the total number of days for a given manipulation is chosen asthe maximum value of number_of_days(n) for the number (n) of definedrate points.

Once the number of days (number_of_days) over which a ring manipulationwill occur is known, the manipulation of the ring for each day isdefined by dividing each of three rotational and three translationalcomponents of the total ring manipulation desired by the number_of_daysand calculating the sub-manipulations of the ring for each day, asdescribed in the section on manipulation of ring parameters above. Inresponse to the bone correction data user input, the system can generatea graphical simulation of the bone deformity correction treatmentsuperimposed on the at least one digital medical image. FIGS. 59A-F showscreen shots of the SET CORRECTION tab 700 illustrating a manipulationwith a rate point 760 on days 0, 2, 4, 6, and 8 of 8.

Correction Prescription Tab

FIG. 44 shows a screen shot of the “CORRECTION PRESCRIPTION” tab 800.Based upon the correction data entered by the user, the system thengenerates a prescription in the form of a bone deformity correctionplan. The CORRECTION PRESCRIPTION tab displays the prescription forperforming the correction. The prescription is a list of strut lengths810 that the patient or a healthcare professional should apply for eachcorrection day 812. There are 6 strut lengths per day, one for eachstrut on the ring. A different prescription will be generated for eachdeformity pair. Advantageously, the system allows calculating, accordingto the bone correction plan, for various strut sizes correspondingnumbers of strut replacements, to allow a selection of strut sizes thatminimize the number of strut replacements on the external fixator (notshown).

In one embodiment, one special case involving drawing rings and strutson a display involves templating a pair of rings and set of struts to ananatomic segment, with a given ring manipulation. The goal of templatingis to pre-operatively determine a set of strut lengths that fits thepatient's anatomy, as well as potentially to minimize the number oftimes a strut has to be exchanged during the manipulation process.Real-life struts have a prescribed range over which they function.During a manipulation, the struts may have to physically be exchangedfor a strut with the next longer or shorter prescribed range. Inpractice, the user would like to minimize the number of these strutexchanges that need to be performed.

Rings and struts can be drawn on images of anatomic segments andmanipulated as described above, allowing the user to approximate thelocation for the rings. This defines a set of ring placement parameterssuch as the ring's center point (P_(c)=(x_(c),y_(c),z_(c))), the tiltrelative to the XY (θ_(xy)) and ZY (θ_(zy)) planes, and the azimuthalrotation azimuthal rotation (φ). Alternatively, the program can define aset of initial parameters based on the location of anatomic segments.

The program can find the position and rotation of the rings that wouldminimize the number of strut exchanges required by the user by varyingthese parameters over a defined range and figuring the number of times astrut would need to be exchanged for a given set of parameters.

For example, the program could vary y_(c) by Δy over a range n=−N to N(N and Δy can be user or programmatically defined).y _(c)(n)=y _(c) +n·Δy  (55)P _(c)(n)=(x _(c) ,y _(c)(n),z _(c))  (56)

The program calculates the number of strut exchanges that would berequired for the given ring manipulation for the set of ring parametersdefined by each n. The n value that returns the minimal number of strutexchanges is termed n_(min). Finally, the ring parameters and strutlengths defined by n=n_(min) are calculated and returned to the user.

This prescription for a bone deformity correction will become part ofthe patient record to be saved as part of the “ID, SESSIONS, & IMPORTIMAGES” tab. In the case where the patient has already undergone anosteotomy and has had an external fixator affixed to the bone, thepatient may receive a hard copy, email, or other type of electroniccommunication of the prescription of strut lengths.

Exemplary Methods

FIGS. 45A-J illustrate a computer-implemented method, along with itsalternative embodiments, to generate a graphical display of a ringsuperimposed on a digital medical image, according to some embodimentsof the present invention. As shown in FIG. 45A, the computer-implementedmethod includes instructions to generate a display of a tiltable ellipsesuperimposed on a graphical display of at least one digital medicalimage 1000, receive ring rotation user input controlling an axialrotation and an azimuthal rotation of the graphical representation ofthe ring superimposed on the digital medical image(s) 1002, and generatea display of the resulting graphical representation of the graphicalrepresentation of the ring superimposed on the digital medical image(s)1004.

In other embodiments, the computer-implemented method further includesinstructions to receive ring identification user input identifying atleast two points defining the tiltable ellipse 1006, as shown in FIG.45B, and calculate a 3D position of the resulting graphicalrepresentation of the ring reflecting the axial and azimuthal rotationof the ring 1008, as shown in FIG. 45C. In an alternative embodimentshown in FIG. 45D, the computer-implemented method further includesinstructions to generate a display of a tiltable ellipse superimposed ona graphical display of at least two digital medical images 1010, receivering rotation user input controlling an axial rotation and an azimuthalrotation of the graphical representation of the ring superimposed on thedigital medical images 1002, and generate a display of the resultinggraphical representation of the ring superimposed on the digital medicalimages 1004.

In other alternative embodiments, the computer-implemented methodfurther includes instructions to control the axial rotation and theazimuthal rotation of the graphical representation of the ringsuperimposed on a first digital medical image of the digital medicalimages according to ring rotation user input entered along a seconddigital medical image of the two digital medical images 1012, as shownin FIG. 45E, receive ring translation user input entered graphically onthe display of the tiltable ellipse to control a translation of the ring1014, as shown in FIG. 45F, and calculate a 3D position of each ring ofthe external fixator relative to the anatomic structure on each of thedigital medical images 1018, as shown in FIG. 45G. In other alternativeembodiments, the computer-implemented method further includesinstructions to receive ring translation user input controlling atranslation of the graphical representation of the ring superimposed onthe at least one digital medical image 1020, as shown in FIG. 45H,receive strut position user input identifying 3D positions for theplurality of struts of the external fixator 1022, as shown in FIG. 45I,and identify a 3D position of each strut of the external fixatoraccording to the strut position user input 1024 and control an axialrotation and an azimuthal rotation of a graphical representation of theplurality of struts 1026, as shown in FIG. 45J.

In some embodiments, generating a graphical display of the resultinggraphical representation of the ring superimposed on the digital medicalimages 1004 further includes instructions to receive bone correctiondata user input comprising a graphical input defining one or more 3Dbiological rate-limiting points for a bone deformity correctiontreatment 1028 and calculate a 3D bone correction speed and/or a numberof days for the bone deformity correction treatment 1030, as shown inFIG. 46A, and calculate a 3D bone correction speed and/or a number ofdays for the bone deformity correction treatment 1030, as shown in FIG.46B. In some embodiments, generating a graphical display of theresulting graphical representation of the ring superimposed on thedigital medical images 1004 further includes instructions to receivebone correction data user input comprising a 3D bone correction speedand/or a number of days for a bone deformity correction treatment to beperformed using the external fixator 1034 and generate a bone deformitycorrection plan specifying for each strut a daily sequence of strutlengths to be used in the bone deformity correction treatment 1036, asshown in FIG. 46C.

In some embodiments, generating a bone deformity correction planspecifying for each strut a daily sequence of strut lengths to be usedin the bone deformity correction treatment 1036 further includesinstructions to determine a preferred size for at least one strutaccording to the bone deformity correction plan to minimize a number ofstrut replacements for the external fixator over the bone deformitycorrection treatment 1038, as shown in FIG. 46D, calculate for variousstrut sizes corresponding numbers of strut replacements, to allow aselection of strut sizes that minimize the number of strut replacementson the external fixator 1040, as shown in FIG. 46E, and generate agraphical simulation of the bone deformity correction treatmentsuperimposed on the digital medical image 1042, as shown in FIG. 46F.

Discussion

Exemplary systems and methods as described above allow accurate anduser-friendly extraction of fixator ring and/or strut 3D positioninformation using one or more radiographs of a patient's anatomy, andallow simulating ring and/or strut position sequences over a course oftreatment overlaid on one or more radiographs. Exemplary systems andmethods as described above, in particular methods relying onuser-controlled axial and azimuthal rotations of fixator rings, can besignificantly more convenient than fully-manual, pen-and-paper methods,and at the same time do not rely on potentially-inaccurate edgedetection techniques or other fully-automatic techniques that mayexhibit limited accuracy in visually-crowded environments. Exemplaryhuman-controlled, computer-assisted methods as described above leveragehuman pattern-recognition capabilities to identify ring positionsoverlaid on radiographs, in conjunction with superior computerposition-computation capabilities to determine 3D ring positions andcorresponding courses of treatment once desired ring locations on one ormore radiographs have been identified by a human. Such desired ringlocations may be locations that match existing fixator structuresalready attached to the patient, or simulated locations for a fixator tobe attached to the patient.

Exemplary systems and methods as described above do not necessarilyrequire that fixator rings be orthogonal to corresponding bone segments,or that AP and lateral x-rays be perfectly mutually orthogonal. Planningand simulating sequential bone and ring manipulation sequences (i.e.concatenating multiple courses of treatment into one simulation) canallow improving clinical outcomes. Visual (graphical) simulation of acourse of treatment overlaid on patient radiographs can provide readyconfirmation that the prescribed course of treatment matches thepatient's anatomy. Exemplary templating methods as described above allowpreparing accurate ring/strut configurations pre-operatively and thusallow reducing the amount of time needed during surgery. In addition,minimizing the number of strut exchanges (replacements) for a givencourse of treatment allows savings in physician time and allows reducingpatient suffering or discomfort.

It will be clear to one skilled in the art that the above embodimentsmay be altered in many ways without departing from the scope of theinvention. Accordingly, the scope of the invention should be determinedby the following claims and their legal equivalents.

What is claimed is:
 1. A computer system comprising at least onemicroprocessor configured to execute instructions to: generate a firstdisplay of an orthopedic treatment device superimposed on a display of afirst digital medical image, the display of the first digital medicalimage displaying a first view of a patient's anatomical structure, thefirst display of the orthopedic treatment device being a first graphicalrepresentation of a synthetic orthopedic treatment device representing aphysical orthopedic treatment device; concurrently with generating thefirst display of the orthopedic treatment device superimposed on thedisplay of the first digital medical image, generate a second display ofthe orthopedic treatment device superimposed on a display of a seconddigital image, the display of the second digital medical imagedisplaying a second view of the patient's anatomical structure from adifferent angle than the first view, the second display of theorthopedic treatment device being a second graphical representation ofthe synthetic orthopedic treatment device; receive user input enteredgraphically on the first display of the orthopedic treatment devicesuperimposed on the display of the first digital medical image, the userinput controlling a motion of the synthetic orthopedic treatment device;and in response to receiving the user input, update the first display ofthe orthopedic treatment device superimposed on the display of a firstdigital medical image and the second display of the orthopedic treatmentdevice superimposed on the display of a second digital image to reflectthe motion of the synthetic orthopedic treatment device.
 2. The computersystem of claim 1, wherein the first view is an anterior-posterior (AP)view, and the second view is a lateral view.
 3. The computer system ofclaim 1, wherein the first view is a lateral view, and the second viewis an anterior-posterior (AP) view.
 4. The computer system of claim 1,wherein the motion comprises a rotation motion.
 5. The computer systemof claim 1, wherein the motion comprises a translation motion.
 6. Thecomputer system of claim 1, wherein the motion comprises a rotationmotion and a translation motion.
 7. The computer system of claim 1,wherein the orthopedic treatment device is an external fixatorcomprising a pair of rings interconnected by struts.
 8. The computersystem of claim 1, wherein the at least one microprocessor is configuredto execute instructions to per-form a relative scaling of the firstdigital medical image and the second digital medical image.
 9. Anon-transitory computer-readable medium encoding instructions which,when executed by a microprocessor of a computer system, cause thecomputer system to: generate a first display of an orthopedic treatmentdevice superimposed on a display of a first digital medical image, thedisplay of the first digital medical image displaying a first view of apatient's anatomical structure, the first display of the orthopedictreatment device being a first graphical representation of a syntheticorthopedic treatment device representing a physical orthopedic treatmentdevice; concurrently with generating the first display of the orthopedictreatment device superimposed on the display of the first digitalmedical image, generate a second display of the orthopedic treatmentdevice superimposed on a display of a second digital image, the displayof the second digital medical image displaying a second view of thepatient's anatomical structure from a different angle than the firstview, the second display of the orthopedic treatment device being asecond graphical representation of the synthetic orthopedic treatmentdevice; receive user input entered graphically on the first display ofthe orthopedic treatment device superimposed on the display of the firstdigital medical image, the user input controlling a motion of thesynthetic orthopedic treatment device; and in response to receiving theuser input, update the first display of the orthopedic treatment devicesuperimposed on the display of a first digital medical image and thesecond display of the orthopedic treatment device superimposed on thedisplay of a second digital image to reflect the motion of the syntheticorthopedic treatment device.
 10. The non-transitory computer readablemedium of claim 9, wherein the first view is an anterior-posterior (AP)view, and the second view is a lateral view.
 11. The non-transitorycomputer readable medium of claim 9, wherein the first view is a lateralview, and the second view is an anterior-posterior (AP) view.
 12. Thenon-transitory computer readable medium of claim 9, wherein the motioncomprises a rotation motion.
 13. The non-transitory computer readablemedium of claim 9, wherein the motion comprises a translation motion.14. The non-transitory computer readable medium of claim 9, wherein themotion comprises a rotation motion and a translation motion.
 15. Thenon-transitory computer readable medium of claim 9, wherein theorthopedic treatment device is an external fixator comprising a pair ofrings interconnected by struts.
 16. The non-transitory computer readablemedium of claim 9, wherein the at least one microprocessor is configuredto execute instructions to perform a relative scaling of the firstdigital medical image and the second digital medical image.